#include "cpp-httplib/httplib.h"  
#include "Searcher.hpp"   
#include "log.hpp"        

using namespace ns_search;

const std::string root_path = "./wwwroot";
const std::string input = "./data/raw_html/raw.txt";

int main()
{
    // 创建搜索器对象，并初始化索引
    Searcher searcher;
    searcher.InitSearch(input);

    // 创建 HTTP 服务器对象
    httplib::Server svr;
    // 设置静态资源根目录
    svr.set_base_dir(root_path);

    // 注册 GET 路由 "/s"，用于处理搜索请求
    svr.Get("/s", [&searcher](const httplib::Request &req, httplib::Response &rsp) {
          // 检查是否包含搜索参数 "word"
          if(!req.has_param("word")){
            rsp.set_content("参数错误，搜索必须有搜索关键字!", "text/plain; charset=utf-8");
            return;
        }

        // 获取搜索关键字
        std::string word = req.get_param_value("word");
        std::string json_string;
        // 调用搜索接口，获取结果
        searcher.Search(word, &json_string);
        // 返回 JSON 格式的搜索结果
        rsp.set_content(json_string, "application/json; charset=utf-8");
    });

	LOG(NORMAL, "服务器启动成功");

    // 启动服务器，监听 8080 端口
    svr.listen("0.0.0.0", 8080);

    return 0;
}